//package com.qiyang.login.filter;
//
//import com.alibaba.fastjson.JSON;
//import com.netflix.loadbalancer.Server;
//import com.netflix.niws.loadbalancer.DiscoveryEnabledServer;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.cloud.netflix.ribbon.ZonePreferenceServerListFilter;
//import org.springframework.web.context.request.RequestAttributes;
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//
//import javax.servlet.http.HttpServletRequest;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//
///**
// * Created on 2018/5/11.
// *
// * @author sehuaqi.
// * 描述：
// */
//public class SpcZonePreferenceServerListFilter extends ZonePreferenceServerListFilter {
//
//    Logger logger = LoggerFactory.getLogger(SpcZonePreferenceServerListFilter.class);
//
//    @Override
//    public List<Server> getFilteredListOfServers(List<Server> servers) {
//
//        //logger.info(">>>>>进入服务实例清单过滤器");
//
//        //logger.info(JSON.toJSONString(servers));
//
//        List<Server> newServers = new ArrayList<>();
//
//        for (Server server : servers) {
//            logger.debug(">>>>>host:port={}", server.getHostPort());
//            if (server instanceof DiscoveryEnabledServer) {
//                DiscoveryEnabledServer discoveryEnabledServer = (DiscoveryEnabledServer) server;
//                String customParam = discoveryEnabledServer.getInstanceInfo().getMetadata().get("custom-param");
//                String serverTag = discoveryEnabledServer.getInstanceInfo().getMetadata().get("server-tag");
//                logger.debug(">>>>>customParam={},version={}", customParam, serverTag);
//                //if("v2.0".equals(serverV)){
//                newServers.add(server);
//                logger.debug(">>>>>执行服务器列表过滤器，将当前 {} 加入可用服务实例列表", server.getHostPort());
//                //}
//
//            }
//        }
//
//        //logger.info(">>>>>过滤后的可用服务实例列表:{}",JSON.toJSONString(newServers));
//
//        return super.getFilteredListOfServers(newServers);
//    }
//}
